package com.ymtms.settlement.service;

import com.ymtms.settlement.pojo.CollectingMoneyBalance;
import com.ymtms.settlement.pojo.GoodsbillMaster;
import com.ymtms.settlement.vo.GridRequest;
import com.ymtms.settlement.vo.GridResult;

public interface CollectingMoneyBalanceService {

    /*-----------------------------代收结算业务------------------------------*/

    // 分页多条件查询 代收结算项
    GridResult<GoodsbillMaster> queryGbmByPage(
            GridRequest gridRequest,
            GoodsbillMaster goodsbillMaster,
            String startTime, String endTime);

    // 将传来的代收结算项数据核实并保存到数据库中
    void save(Integer gmid, CollectingMoneyBalance collectingMoneyBalance);

    /*-----------------------------代收结算历史业务------------------------------*/

    // 分页多条件查询 代收结算历史
    GridResult<CollectingMoneyBalance> queryCmbByPage(
            GridRequest gridRequest, CollectingMoneyBalance collectingMoneyBalance,
            String startTime, String endTime);

    // 根据gmid查询 详情展示
    GoodsbillMaster queryGbmByGmid(Integer gmid);

    // 软删除 代收结算历史
    int removeByCmsid(Integer cmsid);

    // 批量软删除 代收结算历史
    int batchRemoveByCmsid(Integer[] keys);

    /*-----------------------------代收业务变更------------------------------*/

    // 查询可变更业务
    GridResult<GoodsbillMaster> queryChangeAbleGbmByPage(GridRequest gridRequest, GoodsbillMaster goodsbillMaster);
    // 根据gmid查询可变更项详情
    GoodsbillMaster queryChanegAbleGbmByGmid(Integer gmid);
    // 取消代收货款业务
    void cancelBusiness(Integer gmid);
    // 添加代收货款业务
    void addBusiness(GoodsbillMaster goodsbillMaster);
    // 修改代收业务
    void editBusiness(GoodsbillMaster goodsbillMaster);
}
